perm filename MPXPAR.FAI[D,SYS] blob
sn#228775 filedate 1976-08-01 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE MPXPAR TRY TO CAUSE MPX PARITY ERRORS
C00008 00003 GO, INITIALIZATION
C00010 00004 MAIN LOOP
C00014 ENDMK
C⊗;
TITLE MPXPAR TRY TO CAUSE MPX PARITY ERRORS
A←1
B←2
C←3
D←4
E←5
P←17
APR←←0
PI←←4
KLPAG←←10
CCA←←14
TIM←←20
DTE0←←200
DPY←430
PMP←←500
IBM←←504
DDD←510
MPX←530
VDS←340
;PETIT CHANNEL DEFINITIONS
;PMP CONI BITS
;LEFT HALF
CHLNXM←←200000 ;CHANNEL NXM
SELERR←←40000 ;SELECT ERROR
;37700 ARE ADDRESS OF CURRENTLY SELECTED DEVICE
DSKPAR←←40 ;CONTROL UNIT DETECTED PARITY ERROR (BIT 18 ALSO SET)
CORPAR←←20 ;CHANNEL DETECTED PARITY ERROR (BIT 18 ALSO SET)
IDLEL←←10 ;CHANNEL IS IDLE
IS←←4 ;CHANNEL IS IN INITIAL SELECT STATE
REQ←←2 ;CHANNEL IS IN REQUEST STATE
TRANS←←1 ;CHANNEL IS IN TRANSFER STATE
;RIGHT HALF
PARERR←←400000 ;CHANNEL OR CONTROL UNIT DETECTED PARITY ERROR
CMDEMP←←200000 ;COMMAND HOLD EMPTY (OR UNUSUAL END)
IDLE←←100000 ;IDLE STATE (SAME AS IDLEL)
UNEND←←40000 ;UNUSUAL END (NXM,SELERR,BUSY,UNIT CHECK,DATA CHAIN ERR)
NEWST←←20000 ;CHANNEL HAS NEW STATUS
ATTN←←10000 ;ATTENTION
STMOD←←4000 ;STATUS MODIFIER
CUEND←←2000 ;CONTROL UNIT END
BUSY←←1000 ;DEVICE BUSY (IF STMOD THEN CU BUSY)
CHNEND←←400 ;CHANNEL END
DEVEND←←200 ;DEVICE END
UCHK←←100 ;UNIT CHECK
UNXCPT←←40 ;UNIT EXCEPTION
ACTIVE←←20 ;CHANNEL IS REQUESTING AN INTERRUPT
;PMP CONO BITS (ENABLE INTERRUPT CONDITIONS)
EPAR←←400000 ;DISK OR CORE PARITY ERROR
ECMDEM←←200000 ;COMMAND HOLD EMPTY
EIDLE←←100000 ;IDLE
EUNEND←←40000 ;UNUSUAL END
ENEWST←←20000 ;NEW STATUS
EATTN←←10000 ;ATTENTION
ESTMOD←←4000 ;STATUS MODIFIER
ECUEND←←2000 ;CONTROL UNIT END
EBUSY←←1000 ;BUSY
ECHEND←←400 ;CHANNEL END
EDEVEN←←200 ;DEVICE END
EUCHK←←100 ;UNIT CHECK
EUNXCP←←40 ;UNIT EXCEPTION
;DATAO PMP,WCMA
;DATAI IBM,MA
;IBM CONO BITS (FOR CLEARING AND RESETTING THE CHANNEL)
CUNEND←←4000 ;CLEAR UNUSUAL END
CACTIV←←400 ;CLEAR ACTIVE
CNEWST←←200 ;CLEAR NEW STATUS
CSTATU←←40 ;CLEAR STATUS REGISTER
CCMDHO←←20 ;CLEAR COMMAND HOLD LOADED
SCMDHO←←10 ;SET COMMAND HOLD LOADED
RSTOPL←←2 ;RESET OPL OUT
RSTCHN←←1 ;RESET CHANNEL
;IBM DATAO BITS (SETS COMMAND HOLD LOADED AND LOADS COMMAND HOLD)
;17,,740000 ARE THE DEVICE ADDRESS
NWCMA←←20000 ;THIS COMMAND NEEDS A WCMA (DOES A MEMORY XFER)
BYTE4←←10000 ;4 BYTE MODE
CBYTES←←4000 ;COUNT BYTES
CHAIN←←2000 ;COMMAND CHAINING
SKMON←←1000 ;SKIP IF STATUS MOD ON
SKMOFF←←400 ;SKIP IF STATUS MOD OFF
;377 ARE THE COMMAND
;KL10 PARAMETERS, ETC.
SWEEPB←←200000 ;KL10 APR CONI BIT - SWEEP BUSY
DTFLG←←444 ;DTE20 OPERATION COMPLETE FLAG
DTF11←←450 ; FROM 11 ARGUMENT
DTCMD←←451 ; TO 11 COMMAND
DONG11←←20000 ;DTE CONO BIT. REQUEST 11 INTERRUPT
;MAPPIPLEXOR DEFINITIONS
;CONO MPX,E
MCLRAV←←400000 ;CLR ACCESS VIOLATION FOR DEVICE
MCLKWV←←200000 ;CLR WRITE VIOLATION FOR DEVICE
MCLRNX←←100000 ;CLR NXM
MCLRPE←←40000 ;CLR PAR ERR
MRESET←←20000 ;RESET
MDVRST←←10000 ;RESET DEVICE
;7000 IS DEVICE CODE
MPXDEV←←1000 ;LOW BIT OF 3 BIT DEVICE CODE
MCPTPE←←400 ;CLR PAGE TABLE PARITY ERROR
MCWPE←←200 ;CLR WRITE PARITY ERROR
MCRPE←←100 ;CLR READ PARITY ERROR
MDISMP←←40 ;DISABLE MAPPING FOR DEVICE
MENBMP←←20 ;ENABLE MAPPING FOR DEVICE
MENBPI←←10 ;ENABLE LOAD PIA
;7 IS PIA
;CONI MPX,E
MBUSY←←100 ;BUSY
MINT←←40 ;INTERRUPTING
MNXM←←20 ;NXM
MPARER←←10 ;PARITY ERROR
;7 IS PIA
DEFINE CMDW (O1,D1,O2,D2,O3,D3) <
BYTE (8)D1,D2,D3 (3)O1,O2,O3,4
>
DEFINE LVW (X,Y,BRT,SIZE,M,T) <
BYTE (11)<X>,<Y> (3)BRT,SIZE (2)M,T (4) 6
>
DEFINE SEL (N) <
BYTE (12)4000⊗<-N>,¬<4000⊗<-N>>,10
>
;GO, INITIALIZATION
LOC 74
JRST DDT↑
LOC 200
JRST GO
JRST DDT
LOC 777
LOSCNT: 0
GO: MOVE P,[-20,,PDL-1]
CONO APR,200000 ;I/O RESET
CONO PI,10400 ;FLUSH PIS
CONSZ APR,SWEEPB ;WAIT FOR SWEEP BUSY TO FALL
JRST .-1
CONSO KLPAG,600000 ;IS THE CACHE ON ALREADY?
JRST SWP0 ;NO.
BLKO CCA, ;VALIDATE CORE
CONSZ APR,SWEEPB
JRST .-1
SWP0: CONO KLPAG,0 ;TURN OFF CACHE. EPT TO PAGE ZERO. TURN OFF MAP
DATAI CCA,0 ;SWEEP CACHE. INVALIDATE ALL.
CONSZ APR,SWEEPB ;WAIT FOR SWEEP BUSY TO FALL
JRST .-1
MOVEI A,MPXMIC
LSH A,-9 ;PHYSICAL PAGE NUMBER OF MICROCODE
HRLI A,400000
CONSZ MPX,MBUSY ;MAKE SURE MPX IS NOT BUSY
JRST .-1
CONO MPX,MRESET!MENBPI ;ZAP HIM GOOD
CONSZ MPX,MBUSY
JRST .-1 ;WAIT TILL DONE CLEARING RAMS
DATAO MPX,A ;START MICROCODE LOAD
CONSZ MPX,MBUSY ;WAIT FOR MICROCODE LOAD TO FINISH
JRST .-1
;MAIN LOOP
CONO VDS,7
DATAO VDS,[SETZ]
CONO VDS,6
DATAO VDS,[SETZ] ;SELECT CHANNEL 0 FOR 26 AND 27
SETZM LOSCNT
RESTRT: PUSHJ P,DSKZAP
PUSHJ P,DSKGO ;START THE DISK
PUSHJ P,DPYGO ;START THE III
PUSHJ P,DDGO ;START THE DATA DISK
LOOP: CONSZ DPY,402000 ;NOT RUNNING OR NXM
JRST DPYSRV
CONSZ MPX,MINT ;MPX INTERRUPTING?
JRST MPXSRV
CONSZ DDD,10 ;DATA DISK HALTED?
JRST DDSRV ;YES
CONSZ PMP,NEWST!UNEND ;DISK WANT SERVICE
JRST DSKSRV
JRST LOOP
DPYSRV: PUSHJ P,DPYGO
JRST LOOP
MPXSRV: CONSZ MPX,MNXM!MPARER ;PARITY OR NXM IN MPX ITSELF?
JRST MPXSR1 ;YES. THIS NEEDS A FULL RESET
DATAI MPX,A
TDNN A,[7B<=14+2*3>] ;ERROR IN III?
JRST MPXSR2
CONO MPX,<MPXDEV*2>!MDVRST ;RESET III
AOS LOSCNT
JRST MPXSR2
MPXSR1: CONO MPX,MRESET
MPXSR2: CONSZ MPX,MBUSY
JRST .-1
JRST LOOP
DDSRV: PUSHJ P,DDGO
JRST LOOP
DSKSRV: CONI PMP,A
TRNN A,NEWST
JRST RESTRT
CONO IBM,CNEWST
TRNE A,DEVEND
PUSHJ P,DSKGO ;IF FINISHED, START IT OVER AGAIN
JRST LOOP
DSKZAP: MOVEI B,3
DSKZA1: CONO IBM,CUNEND!CNEWST!CSTATU!RSTOPL!RSTCHN
MOVEI A,1000
SOJG A,.
SOJG B,DSKZA1
POPJ P,
DSKGO: DATAO PMP,SNWCMA
DATAO IBM,SNSCMD
POPJ P,
DPYGO: CONO DPY,20 ;STOP
; HLRZ A,DPYCMD
; HRLI A,20
; MOVSM A,(A)
DATAO DPY,DPYCMD
CONO DPY,40 ;CONTINUE
POPJ P,
DDGO: CONO DDD,10 ;RESET
CONO DDD,100 ;SET DDGO
DATAO DDD,[DDPROG] ;START THE DATA DISK UP
POPJ P,
DDPROG: CMDW(1,46,2,0,3,2)
CMDW(3,2,4,10,5,0)
ASCID /HERE IS SOME TEXT FOR THE PURPOSE OF FILLING UP
SOME PART OF A DATADISK SCREEN. ANY UNAUTHORIZED USE OF THIS BROADCAST
WITHOUT THE EXPRESS WRITTEN CONSENT OF THE KL10 IS STRICTLY PROHIBITED.
/
0
REPEAT 100,<0>
PDL: BLOCK 20
SNWCMA: SNSDAT
SNSDAT: BLOCK 20
SNSCMD: 6,,NWCMA!BYTE4!4
DPYCMD: DPYPRG,,20
DPYPRG: SEL (3)
LVW (-500,500,4,3,1,2)
ASCID /HERE IS SOME TEXT FOR THE PURPOSE OF FILLING UP
SOME PART OF A DISPLAY SCREEN. ANY UNAUTHORIZED USE OF THIS BROADCAST
WITHOUT THE EXPRESS WRITTEN CONSENT OF THE KL10 IS STRICTLY PROHIBITED.
/
0
LOC <.+777>∧777000 ;NEXT PAGE BOUNDARY
MPXMIC:
.INSERT MPX.INS[MPX,JBR] ;GET MICROCODE
END GO